﻿package fr.babos.core.events 
{
	/**
	 * Les imports
	 */
	import flash.events.Event;
	
	/**
	 * La classe d'erreur dynamique.
	 * Peut être facilement étendue pour plus de fonctionnalités.
	 * @author ZoulouX
	 */
	public class DynamicErrorEvent extends Event 
	{
		/**
		 * Erreur de données classique
		 */
		public static const ERROR				:String				= "error";
		
		/**
		 * Le message de l'erreur
		 */
		protected var _message					:String;
		
		/**
		 * Le code de l'erreur
		 */
		protected var _code						:uint;
		
		/**
		 * Récupérer le message
		 */
		public function get message ():String { return _message; }
		
		/**
		 * Récupérer le code
		 */
		public function get code ():uint { return _code; }
		
		/**
		 * Le constructeur.
		 * @param	type : Le type d'event
		 * @param	pMessage : Le message d'erreur
		 * @param	pCode : Le code d'erreur
		 * @param	bubbles
		 * @param	cancelable
		 */
		public function DynamicErrorEvent (type:String, pMessage:String = "", pCode:uint = 0, bubbles:Boolean = false, cancelable:Boolean = false) 
		{
			// Enregistrer le message et le code
			_message = pMessage;
			_code = pCode;
			
			// Relayer la construction
			super(type, bubbles, cancelable);
		}
		
		/**
		 * Cloner
		 */
		public override function clone ():Event
		{
			return new DynamicError(type, bubbles, cancelable);
		}
		
		/**
		 * Afficher
		 */
		public override function toString ():String
		{
			return formatToString("DynamicError", "type", "bubbles", "cancelable", "eventPhase"); 
		}
	}
}